BigInteger ক্লাসটি Java.math প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা খুব বড় পূর্ণসংখ্যা (integers) নিয়ে কাজ করার জন্য ব্যবহৃত হয়। এটি অগণিত সঠিকতা (arbitrary precision) প্রদান করে, যার মানে হল যে BigInteger দিয়ে আপনি যে কোনো আকারের পূর্ণসংখ্যার গাণিতিক অপারেশন করতে পারবেন, যা int বা long এর সীমা অতিক্রম করতে পারে।
BigInteger ক্লাসের সাহায্যে আপনি গাণিতিক অপারেশনগুলো যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি বড় সংখ্যার জন্য করতে পারেন।
BigInteger ক্লাসের ব্যবহার:
1. BigInteger ক্লাসের ইনস্ট্যান্স তৈরি করা
BigInteger তৈরি করার জন্য দুটি প্রধান উপায় রয়েছে:
- String দিয়ে ইনস্ট্যান্স তৈরি করা
- int/long দ্বারা ইনস্ট্যান্স তৈরি করা
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Create BigInteger objects from String
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("987654321098765432109876543210");
// Create BigInteger objects from long or int
BigInteger num3 = BigInteger.valueOf(1000000L);
BigInteger num4 = BigInteger.valueOf(5000000L);
// Print out the BigInteger values
System.out.println("BigInteger num1: " + num1);
System.out.println("BigInteger num2: " + num2);
System.out.println("BigInteger num3: " + num3);
System.out.println("BigInteger num4: " + num4);
}
}
Output:
BigInteger num1: 123456789012345678901234567890
BigInteger num2: 987654321098765432109876543210
BigInteger num3: 1000000
BigInteger num4: 5000000
2. Addition (যোগ) with BigInteger
BigInteger.add(BigInteger) মেথডটি দুইটি BigInteger সংখ্যাকে যোগ করার জন্য ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerAddition {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("987654321098765432109876543210");
// Addition
BigInteger sum = num1.add(num2);
System.out.println("Sum: " + sum);
}
}
Output:
Sum: 1111111110111111111011111111100
ব্যাখ্যা:
add()মেথড দুটিBigIntegerঅবজেক্ট যোগ করে একটি নতুনBigIntegerরিটার্ন করে।
3. Subtraction (বিয়োগ) with BigInteger
BigInteger.subtract(BigInteger) মেথডটি দুটি BigInteger সংখ্যার মধ্যে বিয়োগ করার জন্য ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerSubtraction {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("987654321098765432109876543210");
BigInteger num2 = new BigInteger("123456789012345678901234567890");
// Subtraction
BigInteger difference = num1.subtract(num2);
System.out.println("Difference: " + difference);
}
}
Output:
Difference: 864197532086419753208641975320
ব্যাখ্যা:
subtract()মেথড দুটিBigIntegerঅবজেক্টের মধ্যে বিয়োগ অপারেশন সম্পাদন করে।
4. Multiplication (গুণ) with BigInteger
BigInteger.multiply(BigInteger) মেথডটি দুটি BigInteger সংখ্যাকে গুণ করার জন্য ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerMultiplication {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("987654321098765432109876543210");
// Multiplication
BigInteger product = num1.multiply(num2);
System.out.println("Product: " + product);
}
}
Output:
Product: 121932631137021795226305170269409090211114380564702343445628259885000
ব্যাখ্যা:
multiply()মেথড দুটিBigIntegerঅবজেক্টের গুণফল প্রদান করে।
5. Division (ভাগ) with BigInteger
BigInteger.divide(BigInteger) মেথডটি দুটি BigInteger সংখ্যার মধ্যে ভাগ করার জন্য ব্যবহৃত হয়। তবে, ভাগের সময় সঠিকভাবে ফলাফল পাওয়ার জন্য divide() মেথডটি অতিরিক্ত নির্দিষ্ট রাউন্ডিং সিস্টেম প্রয়োগ করতে পারে।
import java.math.BigInteger;
public class BigIntegerDivision {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("987654321098765432109876543210");
BigInteger num2 = new BigInteger("123456789012345678901234567890");
// Division
BigInteger quotient = num1.divide(num2);
System.out.println("Quotient: " + quotient);
}
}
Output:
Quotient: 8
ব্যাখ্যা:
divide()মেথডটিBigIntegerসংখ্যা দুটি ভাগ করে একটি পূর্ণসংখ্যা (integer) রিটার্ন করে। যদি ভাগের ফলস্বরূপ দশমিক থাকে, তবে এটি decimal truncation (ডিসিমাল স্থান বাদ দেয়া) করতে পারে, যেহেতুBigIntegerশুধুমাত্র পূর্ণসংখ্যা (integers) নিয়ে কাজ করে।
6. Handling Division with Rounding (ভাগের ক্ষেত্রে রাউন্ডিং)
যদি আপনি BigDecimal এর মতো BigInteger-এও ভাগের সময় রাউন্ডিং করতে চান, তবে BigDecimal ব্যবহার করতে হবে, কারণ BigInteger শুধুমাত্র পূর্ণসংখ্যা সমর্থন করে।
import java.math.BigDecimal;
public class BigDecimalDivisionWithRounding {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("987654321098765432109876543210");
BigDecimal num2 = new BigDecimal("123456789012345678901234567890");
// Division with rounding
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP); // Rounding to 2 decimal places
System.out.println("Quotient with rounding: " + quotient);
}
}
Output:
Quotient with rounding: 8.00
BigIntegerক্লাসটি অগণিত সঠিকতা এবং বড় পূর্ণসংখ্যা নিয়ে কাজ করার জন্য গুরুত্বপূর্ণ।- এটি
add(),subtract(),multiply(), এবংdivide()মেথডগুলির মাধ্যমে বড় সংখ্যাগুলির গাণিতিক অপারেশন পরিচালনা করতে সহায়তা করে। BigIntegerএর সাহায্যে আপনি বৃহৎ গাণিতিক কাজ যেমন ক্রিপ্টোগ্রাফি, বিজ্ঞান বা উচ্চ নির্ভুলতার জন্য সঠিক গণনা করতে পারেন।
Read more